The present invention relates to a slave controller wherein a command supplied from a master controller is executed according to a built-in control algorithm. More particularly, it relates to techniques which are effective when applied to, for example, a command break control or the stop of the execution of a command to be executed asynchronously to the master controller, and software debug with notice taken of a peripheral controller.
In a system including a processor, a peripheral controller is included as a slave controller which receives a command from a host processor such as a master controller and executes it, whereby a multiprocessor construction or multitasking can be adopted. Thus, lightening the burden of the master controller and also enhancing the efficiency of system operations are achieved. For example, in a graphic system, display controller which supports a display control and drawing control for a frame buffer is included, whereby when the graphic controller is executing a command received from the host processor, this host processor can execute another control process.
Meanwhile, for the software debug and system evaluation of a processor system, it is possible to utilize a system development tool which determines the errors of a program in such a way that the program of the system to be debugged is actually executed and such execution is traced. Functions which the system development tool offers are to execute the program from any desired address by means of a host processor, to stop the execution of the program by the host processor after a designated condition has held, to track various kinds of bus information items and display the tracked contents during the execution of the program, and so forth. In particular, a so-called break point control for stopping the execution of the program after the holding of the designated condition is the function which centers around the state of the program execution by the host processor, and according to which the execution of the program by the host processor is stopped when the occurrences of predetermined phenomena are detected on the basis of the various information items of buses coupled to the host processor.
On the other hand, the software debug of the system is requested to be done with notice taken of a desired peripheral controller. For such a request, the conventional system development tool which realizes the software debug while centering around the host processor cannot be utilized as it is. The inventors therefore performed studies on the software debug with notice taken of the peripheral controller, and they have drawn the following conclusions: In that case, the occurrence of an error attendant upon the execution of a command needs to be appropriately grasped by causing the peripheral controller to execute the command in stages, and to this end, the command execution by the peripheral controller needs to be stopped at will.
By the way, an example of literature stating the break point control of a system development tool such as emulator is "LSI Handbook," p. 562, published by The Ohm-Sha, Ltd. on Nov. 30, 1984.
Regarding the conclusions mentioned above, the slave controller, such as a peripheral controller, executes individual commands in accordance with a control algorithm peculiar thereto as configured of micro programs, and the individual commands require unequal execution times, depending upon the processing contents thereof. By way of example, when lines are drawn by the graphic controller, command execution times corresponding to the thicknesses and lengths of the lines are required. Therefore, when the software debug is performed with notice taken of the peripheral controller, it is difficult, while the execution end timings of the individual commands in the peripheral controller concerned are being properly grasped outside the peripheral controller, to stop the command execution operations at predetermined timings on the basis of an external control. Especially in a peripheral controller which adopts an interface of the type wherein, for the purpose of preventing the lowering of the system operation efficiency attributed to overheads involved in transferring commands and parameters by means of the host processor, a train of commands, etc. as needed are loaded in a buffer of, e.g., the first-in first-out or FIFO type beforehand, the given commands are successively executed according to an internal operation sequence, and hence, it is more difficult to stop the command execution operations at the predetermined positions of the command train. Therefore, the software debug with the peripheral controller noticed has inevitably been coped with by altering the program of the host processor much for that purpose only. For example, it has been coped with by the expedient that the command train for the peripheral controller as contained in the regular program is decomposed, whereupon a specified command et seq. are prevented from being transferred, or stop commands are inserted into predetermined positions.
The inventors' studies, however, have revealed that, with such an expedient, the program is drastically altered due to the decomposition of the command train, the insertion of the stop commands, etc. As a further problem, a command transfer program and program storage means must be remade due to change in the number of words to-be-transferred of the command train thus altered, and the remaking operations are not easy and form a cause for the critical difficulty of the software debug with the peripheral controller noticed.